home *** CD-ROM | disk | FTP | other *** search
/ DS-CD ROM 2 1993 August / DS CD-ROM 2.Ausgabe (August 1993).iso / programm / ds0257 / doc.exe / STACKS.DOC < prev    next >
Text File  |  1992-02-02  |  3KB  |  71 lines

  1.   ─────────────────────────────────────────────────────────────────────────────
  2.   Dokumentation zur Datei: STACKS.MAC
  3.  
  4.   ─────────────────────────────────────────────────────────────────────────────
  5.    
  6.      STACKS.MAC  - MACROs und Definitionen zur Nutzung der STACKS-Verwaltung
  7.                    von DOS
  8.                    (für den Assembler A86)
  9.    
  10.                    (c) Bernd Schemmer 1990 - 1992
  11.                    Letzter Update: 02.02.1992
  12.    
  13.    
  14.     ■ Hinweis:
  15.     ---------
  16.     Die STACKS-Verwaltung wie sie hier vorrausgesetzt wird,
  17.     ist erst ab DOS 3.3 vorhanden (auch bei DOS 4+).
  18.     Sie wird mittels des STACKS-Befehls in der CONFIG-Datei
  19.     eingerichtet und stellt für Hardware-Interrupts eigene
  20.     Stacks aus einem StackPool zur Verfügung.
  21.    
  22.     Alle hier aufgeführten Datenstrukturen, Macros und
  23.     Routinen beziehen sich auf UNDOKUMENTIERTE Features.
  24.     Sie sollten also nur in Ausnahmefällen benutzt werden.
  25.    
  26.     ■ Info-Quellen:
  27.     ---------------
  28.     c't und Interrupt-Liste von Ralf Brown
  29.    
  30.    
  31.     ■ Aufbau des Headers für den STACKS-Bereich
  32.    
  33.      StacksArea STRUC [BX]
  34.       Stacks_IDWord dw ?
  35.       Stacks_Count  dw ?           ; Anzahl von STACKS (erster Parameter des
  36.                                    ; STACKS-Befehls)
  37.       Stacks_1Stack dw ?           ; Offset des ersten Stack
  38.       Stacks_Length dw ?           ; Grösse eines Stacks (zweiter Parameter des
  39.                                    ; STACKS-Befehls)
  40.       Stacks_FrameT dd ?           ; Zeiger auf die Rahmentabelle
  41.                                    ; Die Rahmentabelle enthält für jeden Stack
  42.                                    ; einen Rahmen (= Frame)
  43.       Stacks_MFrame dw ?           ; min. Rahmengrösse
  44.       Stacks_XFrame dw ?           ; max. Rahmengrösse
  45.       Stacks_Akt    dw ?           ; Offset des nächsten zu belegenden Stacks
  46.                 ENDS
  47.    
  48.     ■ Aufbau eines Eintrages in der Rahmentabelle des STACKS-Bereichs
  49.       (Anzahl Einträge = Inhalt des Feldes Stacks_Count im Header)
  50.    
  51.      StackFrameArea STRUC [BX]
  52.       Frame_ID     dw ?            ; Kennung des zugehörigen Stacks
  53.                                    ; 0 = frei, 1 = besetzt, 3 = gesperrt
  54.       Frame_StackP dd ?            ; gesicherter Stackpointer
  55.                                    ; (0:0 ->> Stack wurde noch nie benutzt)
  56.       Frame_Offs   dw ?            ; Offset der Stackspitze des zugehörigen
  57.                                    ; Stacks aus dem Stackpool
  58.                      ENDS
  59.    
  60.    
  61.     ----------------------------
  62.     GetSTACKSData
  63.    
  64.     Funktion:  Macro zum Ermitteln der Daten des STACK-Bereichs
  65.    
  66.     Ausgabe:   CF = 1 ->> keine STACKS gefunden
  67.                           ES und BX undefiniert
  68.                CF = 0 ->> STACKS installiert
  69.                           ES:BX -> Header des Stack-Bereichs
  70.    
  71.